object LoopConditionDemo extends App {
  // 罚款规则:每天0.5元,最多不超过图书价格的30%
  val bookPrice = 50.0  // 图书价格
  val maxFineRate = 0.3  // 最大罚款比例
  val maxFine = bookPrice * maxFineRate  // 最大罚款金额
  val dailyFine = 0.5  // 每天罚款金额

  // 模拟输入逾期天数(实际应用中可改为用户输入)
  var overDays = 25  // 逾期天数
  var totalFine = 0.0

  // 合理设计循环条件:避免无限循环
  while (overDays > 0 && totalFine < maxFine) {
    // 计算当天罚款(不超过剩余可罚金额)
    val fineForDay = math.min(dailyFine, maxFine - totalFine)
    totalFine += fineForDay
    overDays -= 1

    println(f"已计算1天罚款: $fineForDay%.2f元, 累计: $totalFine%.2f元, 剩余逾期天数: $overDays")
  }

  // 输出结果
  if (totalFine >= maxFine) {
    println(f"\n已达到最大罚款金额($maxFine%.2f元), 停止计算")
  } else {
    println("\n所有逾期天数已计算完毕")
  }
  println(f"最终罚款金额: $totalFine%.2f元")
}

